﻿using BCCommon.Enums;
using BCCommon.PaymentEnums;
using System;
using System.Collections.Generic;

namespace BCDto.Common.Payment.Payment
{
    /// <summary>
    /// 支付信息
    /// </summary>
    public class PaymentDto
    {
        private IDictionary<string, string> parameters = new Dictionary<string, string>();

        /// <summary>
        /// 付款记录编号。
        /// </summary>
        public long PaymentRecordId { get; set; }

        /// <summary>
        /// 订单类型。
        /// </summary>
        public FlowType OrderType { get; set; }

        /// <summary>
        /// 唯一参考号。
        /// </summary>
        public string ReferenceNumber { get; set; }

        /// <summary>
        /// 支付渠道。
        /// </summary>
        public PaymentChannelType PayChannelType { get; set; }

        /// <summary>
        /// 原始支付金额。
        /// </summary>
        public decimal OriginalAmount { get; set; }

        /// <summary>
        /// 本次折扣。
        /// </summary>
        public decimal Discount { get; set; }

        /// <summary>
        /// 实际支付金额。
        /// </summary>
        public decimal PaidAmount { get; set; }

        /// <summary>
        /// 结果。
        /// </summary>
        public PaymentResultType Result { get; set; }

        /// <summary>
        /// 需要用户响应时的相关参数。
        /// </summary>
        public string ActionArguments { get; set; }

        /// <summary>
        /// 参数。
        /// </summary>
        public IDictionary<string, string> Parameters
        {
            get { return this.parameters; }
            set { this.parameters = value; }
        }
        
        /// <summary>
        /// 实际支付时间
        /// </summary>
        public DateTime? PaidTime { get; set; }

    }
}
